package com.baweiytx.club

import android.os.Bundle
import android.util.Log
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import cn.jiguang.verifysdk.api.AuthPageEventListener
import cn.jiguang.verifysdk.api.JVerificationInterface
import cn.jiguang.verifysdk.api.LoginSettings
import cn.jiguang.verifysdk.api.PreLoginListener
import cn.jiguang.verifysdk.api.VerifyListener
import cn.jpush.android.api.JPushInterface
import org.json.JSONObject


class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_main)
        //1:访问接口：登录-》token---》MMKV
        //2：访问接口：获得用户信息---》memberId-》MMKV
        //3：主页面接受登录成功事件总线访问绑定极光id接口：
        //获得极光id
        val jpushId = JPushInterface.getRegistrationID(this)

        //建议在页面加载时进行获取预取号
        preLogin()
    }
    //增加一个字段存储预取号接口状态
    private var finishPrelogin = true
    /**
     * 预取号
     */
    private fun preLogin() {
        //判断SDK初始化状态
        if (JVerificationInterface.isInitSuccess()) {
            this.finishPrelogin = false
            JVerificationInterface.preLogin(this, 5000, object : PreLoginListener {
                override fun onResult(code: Int, content: String, operatorReturn: JSONObject) {
                    //回调响应结果，建议用户增加一个字段存储预取号接口状态
                    finishPrelogin = true
                    Log.d("TAG", "code: "+code)
                    Log.d("TAG", "content: "+content)
                    Log.d("TAG", "operatorReturn: "+operatorReturn)
                    if(code == 7000){//预取号成功
                        loginAuth()
                    }
                }
            })
        }
    }
    fun loginAuth() {
        //如果预登录未完成则不建议调用一键登录，根据我们的数据分析如果预登录较长时间未完成，一键登录的成功率也会降低，所以用户体验最好的方式就是，在预登录接口执行完成后进行一键登录。
        //我们强烈建议，在一键登录的前置页面进行预取号接口调用。
        if (!finishPrelogin) {
            return;
        }
        //设置自定义UI
//        setUIConfig();
        //LoginSettings为登录配置
        val settings = LoginSettings()
        settings.setAutoFinish(true)// 设置登录完成后是否自动关闭授权页
        settings.setTimeout(15 * 1000)// 设置超时时间，单位毫秒。 合法范围（0，30000], 范围以外默认设置为 10000
        settings.setAuthPageEventListener(object : AuthPageEventListener() {
            override fun onEvent(p0: Int, p1: String?) {

            }
        })
        //拉起授权页并点击一键登录
        JVerificationInterface.loginAuth(this,settings,object : VerifyListener {
            override fun onResult(code: Int, content: String?, operator: String?, operatorRetrurn: JSONObject?) {
                Log.d("TAG", "code: "+code)
                Log.d("TAG", "content: "+content)
                Log.d("TAG", "operator: "+operator)
                if (code == 6000){
                    //获得loginToken
                }
            }

        })
    }



}